package com.example.telesys.service.fallback;

import com.example.telesys.pojo.Customerorder;
import com.example.telesys.service.CustomerorderService;
import com.github.pagehelper.PageInfo;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Service;

import java.util.ArrayList;

/**
 * 这是一个泛型的容错类
 * 在这个容错类中 发生错误的时候
 * 我们可以将对应的错误也传入进来 通过Throwable 我们可以
 * 根据自己的需求来处理即可
 */
@Service
public class CustomerorderServiceFallbackFactory implements FallbackFactory<CustomerorderService> {

    /**
     * 我们可以看到Throwable可以获得 我们可以自己处理这个throwable
     * @param throwable
     * @return
     */
    @Override
    public CustomerorderService create(Throwable throwable) {

        return new CustomerorderService() {
            @Override
            public int insertPhoneOrder(Customerorder customerorder) {
                return 0;
            }

            @Override
            public PageInfo selectMyOrders(String username, Integer currentPageNumber, Integer currentPageSize) {
                System.out.println(throwable);
                PageInfo pageInfo = new PageInfo();
                pageInfo.setList(new ArrayList());
                return pageInfo;
            }

            @Override
            public int insertBroadbandOrder(Customerorder order) {
                return 0;
            }

            @Override
            public int insertTrafficOrder(Customerorder order) {
                return 0;
            }
        };
    }
}
